home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / Source / Telnet 2.6.1d1 4⁄26⁄94 Folder / source / tek / rghp.c < prev    next >
Text File  |  1994-04-13  |  2KB  |  135 lines

  1. /*
  2.  
  3. rghp.c by Aaron Contorer for NCSA
  4. Copyright 1987, board of trustees, University of Illinois
  5.  
  6. Routines for HP-GL plotter output.  Only 1 window output at a time.
  7.  
  8. */
  9.  
  10. #ifdef MPW
  11. #pragma segment TEKHP
  12. #endif
  13.  
  14. #include <stdio.h>
  15.  
  16. #include "rghp.proto.h"
  17.  
  18. #include "rghp.proto.h"
  19. static signore(char *s);
  20. static HPbegin(void);
  21. static signore(char *s);
  22. static HPbegin(void);
  23.  
  24. static char *HPname = "Hewlett-Packard HP-GL plotter";
  25. static char busy; /* is device already in use */
  26. static int winbot,winleft,wintall,winwide;
  27.     /* position and size of window into virtual space */
  28. static int (*outfunc)(char *);
  29.     /* the function to call with pointer to strings */
  30. static char HPtext[100];
  31.     /* the string containing the HP-GL output text */
  32. static int HPpenx,HPpeny;
  33. static int HPblank;
  34. static int HPcolor;
  35.  
  36. static signore(char *s)
  37. /* Ignore the string pointer passed here. */
  38. {}
  39.  
  40.  
  41. RGHPoutfunc(int (*f )())
  42. /*
  43.     Specify the function that is to be called with pointers to all
  44.     the HP-GL strings.
  45. */
  46. {
  47.     outfunc = f;
  48. }
  49.  
  50.  
  51. static HPbegin(void)
  52. /* set up environment for whole new printout */
  53. {
  54.     (*outfunc)("IN;SP1;SC-50,4370,-100,4120;PU0,0;");
  55.     HPpenx = HPpeny = 0;
  56. }
  57.  
  58. int RGHPnewwin(void)
  59. {
  60.     if (busy) return(-1);
  61.  
  62.     HPtext[0] = '\0';
  63.     HPpenx = HPpeny = 0;
  64.     HPblank = TRUE;
  65.     HPcolor = 100;
  66.     return(0);
  67. }
  68.  
  69. RGHPclrscr(int w){
  70.     RGHPpagedone(w);
  71. }
  72.  
  73. RGHPclose(int w) {
  74.     RGHPclrscr(w);
  75.     busy=FALSE;
  76. }
  77.  
  78. RGHPpoint(int w, int x, int y) {
  79.     (*outfunc)("PD;PU;");
  80.  
  81. RGHPdrawline(int w, int x0, int y0, int x1, int y1)
  82. {
  83.     if (HPblank) {
  84.         HPbegin();
  85.         HPblank = FALSE;
  86.     }
  87.  
  88.     if (x0 != HPpenx || y0 != HPpeny) {
  89.         /* only move pen if not already there */
  90.         sprintf(HPtext,"PU%d,%d;",x0, y0);
  91.         (*outfunc)(HPtext);
  92.     }
  93.     sprintf(HPtext,"PD%d,%d;",x1, y1);
  94.     (*outfunc)(HPtext);
  95.     HPpenx=x1;
  96.     HPpeny=y1;
  97. }
  98.  
  99. RGHPpagedone(int w) {
  100.     (*outfunc)("PG;");
  101.     HPblank = TRUE;
  102. }
  103.  
  104. RGHPdataline(int w, int data, int count) {}
  105.  
  106. RGHPpencolor(int w, int color) {
  107.     color &= 7;
  108.     if (color) {
  109.         sprintf(HPtext,"SP%d;",color);
  110.         (*outfunc)(HPtext);
  111.     }
  112. }
  113.  
  114. RGHPcharmode(int w, int rotation, int size) {}
  115. RGHPshowcur(void) {}
  116. RGHPlockcur(void) {}
  117. RGHPhidecur(void) {}
  118. RGHPbell(int w) {}
  119. RGHPuncover(int w) {}
  120.  
  121. char *RGHPdevname(void) {
  122.     return(HPname);
  123. }
  124.  
  125. RGHPinit(void) {
  126.     busy=FALSE;
  127.     outfunc=signore;
  128. }
  129.  
  130. RGHPinfo(int w, int a, int b, int c, int d, int v) {}
  131.  
  132. RGHPgmode(void) {}
  133. RGHPtmode(void) {}
  134.